﻿using Newtonsoft.Json.Linq;
using StartsEAS_API.Model;
using StartsEAS_API.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StartsEAS_API.BLL.Interfaces.ITheApplicationFormB
{
    public interface ITheApplicationFormBLL
    {
        /// <summary>
        /// 根据Token查询该用户的所有申请表
        /// </summary>
        /// <param name="token">用户token(学生、老师)</param>
        /// <returns></returns>
        public ResultUtils GetAllApplicationFormByToken(string token);
        /// <summary>
        /// 教务处查询所有的申请表
        /// </summary>
        /// <param name="token">教务处Token</param>
        /// <returns></returns>
        public ResultUtils GetAllApplicationForm(string token);
        /// <summary>
        /// 添加一条申请表信息
        /// </summary>
        /// <param name="token">用户token</param>
        /// <param name="InfoJSON">申请表具体信息</param>
        /// <param name="ApplicationType">申请类型</param>
        /// <param name="Status">当前状态</param>
        /// <returns></returns>
        public ResultUtils InsertApplicationForm(string token, string InfoJSON, int ApplicationType, int Status);
        /// <summary>
        /// 老师审批
        /// </summary>
        /// <param name="token">老师token</param>
        /// <param name="status">1 同意 2 拒绝</param>
        /// <param name="applicationFormId">消息审批申请表Id</param>
        /// <returns></returns>
        public ResultUtils AlterStuCounselorApproval(string token, int status, int applicationFormId);
        /// <summary>
        /// 教务处审批
        /// </summary>
        ///<param name="token">教务处token</param>
        /// <param name="status">1 同意 2 拒绝</param>
        /// <param name="theApplicationForm">消息审批申请表</param>
        /// <returns></returns>
        public ResultUtils AlterStuDeptApproval(string token, int status, JObject theApplicationForm);
        public ResultUtils GetStudentApplicationFormByWorkerToken(string token, string classId);
    }
}
